﻿//Codigo del Grid de Inventarios

function actualizarGridInventarios(idAlmacen, esMateriaPrima) {
    var urlListado = '/ModuloInventarios.aspx?listado=true&idAlmacen='+idAlmacen+'&';
    if (esMateriaPrima == "true")
        urlListado = '/ModuloInventarios.aspx?listado=true&materiaPrima=true&idAlmacen=' + idAlmacen + '&';
    $('#GridTableInventarios').flexOptions({ url: urlListado });
    $('#GridTableInventarios').flexReload();
}

function InitInventariosGrid(esMateriaPrima) {
    var urlListado = '/ModuloInventarios.aspx?listado=true&';
    var tipo = "Producto";
    var tipos = "Productos";
    if (esMateriaPrima == "true") {
        urlListado = '/ModuloInventarios.aspx?listado=true&materiaPrima=true&';
        tipo = "Materia Prima";
        tipos = "Materias Primas";
    }
    $("#GridTableInventarios").jqGrid
			(
			{
			    url: urlListado,
			    dataType: 'xml',
			    colNames: ['id', 'id2', 'Clave', 'Descripcion', 'Categoria', 'Linea', 'Marca', 'Stock','Apartados','Surtiendo', 'Precio', 'Precio', 'Precio', 'Precio','P. Compra' ],
			    colModel: [
			    //id,clave,descripcion,idmarca,idcategoria,idfamilia,precio1,precio2,precio3,especifiaciones
                {index: 'id', name: 'id', width: 30, sortable: true, align: 'center', hide: true },
				{ index: 'id2', name: 'id2', width: 50, hidden: true, align: 'center' },
				{ index: 'clave', name: 'clave', width: 80, sortable: true, align: 'left' },
			    //{ display: 'SKU', name: 'SKU', width: 70, sortable: true, align: 'left' },
                {index: 'descripcion', name: 'descripcion', width: 240, sortable: true, align: 'left' },
                { index: 'NombreCategoria', name: 'NombreCategoria', width: 90, sortable: true, align: 'left' },
				{ index: 'NombreLinea', name: 'NombreLinea', width: 90, sortable: true },
				{ index: 'NombreMarca', name: 'NombreMarca', width: 90, sortable: true },
			    // { display: 'Modelo', name: 'modelo', width: 70, sortable: true },
                {index: 'stock', name: 'stock', width: 40, sortable: true, align: 'right' },
                { index: 'apartados', name: 'apartados', width: 40, sortable: true, align: 'right' },
                { index: 'porsurtir', name: 'porsurtir', width: 40, sortable: true, align: 'right' },
                { index: 'precio1', name: 'precio1', width: 60, sortable: true, formatter: 'currency', align: 'right' },
                { index: 'precio2', name: 'precio2', width: 55, hidden: true, formatter: 'currency', align: 'right' },
                { index: 'precio3', name: 'precio3', width: 55, hidden: true, formatter: 'currency', align: 'right', hide: true },
                { index: 'precio4', name: 'precio4', width: 55, hidden: true, formatter: 'currency', align: 'right', hide: true },
                { index: 'UltimoPrecioCompra', name: 'UltimoPrecioCompra', formatter: 'currency', width: 60, sortable: true, align: 'right'}
				],

			    rowNum: 30,
			    rowList: [10, 20, 30, 50, 100, 200, 300, 500, 1000],
			    sortname: 'P.id',
			    sortorder: 'desc',
			    pager: $('#pagerGridTableInventarios'),
			    viewrecords: true,
			    caption: tipos,
			    width: 1000,
			    height: GridTotalHeight - 8,
			    //footerrow: true,
			    //userDataOnFooter: true,
			    altRows: true,
			    ondblClickRow: function (id, linea, columna, evento) { CargarPaginaInventario('/ModuloInventarios.aspx?idProducto=' + id + '&detalle=true'); }
			}
			);
			buscadorJQGrid('GridTableInventarios', 'pagerGridTableInventarios', '', 22);

			$("#idAlmacenListado").change(function () {
			    var valorAlmacen = "";
			    $("#idAlmacenListado option:selected").each(function () {
			        valorAlmacen = $(this).val();
			    });
			    actualizarGridInventarios(valorAlmacen,esMateriaPrima);
			})
        .change();

}


function InitReporteInventarioVentas() {
    var fInicial = $("#RepProdFechaInicial").val();
    var fFinal = $("#RepProdFechaFinal").val();
    var urlListado = '/ModuloInventarios.aspx?RepVentas=true&fechaInicial='+fInicial+'&fechaFinal='+fFinal+'&';
    $("#TableReporteInventario").flexigrid
			(
			{
			    url: urlListado,
			    dataType: 'json',
			    colModel: [
			    //id,clave,descripcion,idmarca,idcategoria,idfamilia,precio1,precio2,precio3,especifiaciones
                {display: 'ID', name: 'id', width: 50, sortable: true, align: 'center', hide: true },
				{ display: 'No. Prod.', name: 'id2', width: 50, sortable: true, align: 'center' },
				{ display: 'Clave', name: 'clave', width: 70, sortable: true, align: 'left' },
			    //{ display: 'SKU', name: 'SKU', width: 70, sortable: true, align: 'left' },
                {display: 'Descripcion', name: 'descripcion', width: 185, sortable: true, align: 'left' },
                { display: 'Categoria', name: 'NombreCategoria', width: 90, sortable: true, align: 'left' },
				{ display: 'Linea', name: 'NombreLinea', width: 90, sortable: true },
				{ display: 'Marca', name: 'NombreMarca', width: 90, sortable: true },
			    // { display: 'Modelo', name: 'modelo', width: 70, sortable: true },
                {display: 'Stock', name: 'stock', width: 40, sortable: true, align: 'right' },
                { display: 'Vendidos', name: 'vendidos', width: 40, sortable: true, align: 'right' },
                { display: 'Precio Promedio', name: 'precioPromedio', width: 40, sortable: true, align: 'right' },
                { display: 'Costo Actual', name: 'costo', width: 55, sortable: true, align: 'right' },
                { display: 'Total Venta', name: 'totalVenta', width: 55, sortable: true, align: 'right' },
                { display: 'Total Ingresos', name: 'totalIngresos', width: 55, sortable: true, align: 'right' }
				],
			    searchitems: [
				{ display: 'No. ', name: 'id' },
				{ display: 'Descripcion', name: 'descripcion', isdefault: true },
                { display: 'Clave de Producto', name: 'clave' },
                { display: 'SKU', name: 'SKU' }
				],
			    sortname: "NombreCategoria",
			    sortorder: "asc",
			    usepager: true,
			    title: 'Reporte de Ventas',
			    useRp: true,
			    width: 1020,
			    height: GridTotalHeight,
			    pagestat: 'Mostrando de {from} a {to} de un total de {total} registros',
			    pagetext: 'Pagina',
			    outof: 'de',
			    findtext: "Buscar <span style='font-size:8px;'>(presione Enter para realizar la busqueda)</span>",
			    procmsg: 'Procesando, Espere por favor ...',
			    nomsg: 'No hay registros',
			    resizable: false,
			    blockOpacity: 0.75,
			    onSuccess: function () { AddGridTotals('TableReporteInventario'); },
			    OnDoubleClick: function (id) { CargarPaginaInventario('/ModuloInventarios.aspx?idProducto=' + id + '&detalle=true'); }
			}
			);
}




function InitListaTrans() {
    var urlListado = '/ModuloInventarios.aspx?listaTraspasos=true&';
    $("#GridTransferencias").flexigrid
			(
			{
			    url: urlListado,
			    dataType: 'json',
			    colModel: [
			    //id,clave,descripcion,idmarca,idcategoria,idfamilia,precio1,precio2,precio3,especifiaciones
                {display: 'ID', name: 'id', width: 50, sortable: true, align: 'center', hide: true },
				{ display: 'No. Prod.', name: 'id2', width: 50, sortable: true, align: 'center' },
				{ display: 'Clave', name: 'clave', width: 70, sortable: true, align: 'left' },
			    //{ display: 'SKU', name: 'SKU', width: 70, sortable: true, align: 'left' },
                {display: 'Descripcion', name: 'descripcion', width: 285, sortable: true, align: 'left' },
                { display: 'Fecha', name: 'NombreCategoria', width: 55, sortable: true, align: 'left' },
				{ display: 'Almacen Salida', name: 'NombreLinea', width: 100, sortable: true },
				
                {display: 'Almacen Entrada', name: 'stock', width: 100, sortable: true, align: 'left' },
			    // { display: 'Modelo', name: 'modelo', width: 70, sortable: true },
                
                { display: 'Cantidad', name: 'vendidos', width: 50, sortable: true, align: 'right' },
                { display: 'NO. Venta', name: 'totalIngresos', width: 70, sortable: true, align: 'right' }
				],
			    searchitems: [
				{ display: 'No. ', name: 'P.id' },
				{ display: 'Descripcion', name: 'P.descripcion', isdefault: true },
                { display: 'Clave de Producto', name: 'clave' },
                { display: 'SKU', name: 'SKU' }
				],
			    sortname: "C.id",
			    sortorder: "desc",
			    usepager: true,
			    title: 'Reporte de Ventas',
			    useRp: true,
			    width: 1020,
			    height: GridTotalHeight,
			    pagestat: 'Mostrando de {from} a {to} de un total de {total} registros',
			    pagetext: 'Pagina',
			    outof: 'de',
			    findtext: "Buscar <span style='font-size:8px;'>(presione Enter para realizar la busqueda)</span>",
			    procmsg: 'Procesando, Espere por favor ...',
			    nomsg: 'No hay registros',
			    resizable: false,
			    blockOpacity: 0.75,
			    OnDoubleClick: function (id) { $('#PestanaPanelVentas').click(); CargarPaginaVentas('/ModuloVentas.aspx?idVenta=' + id + '&detalle=true'); }
			}
			);
}



function idAlmacenKardexSeleccionado() {
    var valorAlmacen = "";
    $("#idAlmacenKardex option:selected").each(function () {
        valorAlmacen = $(this).val();
    });
    return valorAlmacen
}

function actualizarGridKardex(idProducto, idAlmacen, fechaInicial, fechaFinal) {
    var urlListado = '/ModuloInventarios.aspx?listado=true&idProducto=' + idProducto + '&kardex=true&idAlmacen=' + idAlmacen + '&fechaInicial=' + fechaInicial + '&fechaFinal=' + fechaFinal + '&';
    //alert(urlListado);
    $('#GridKardexProducto').flexOptions({ url: urlListado });
    $('#GridKardexProducto').flexReload();
}


function InitVentasGrid(idProducto) {
    var urlListado = '/ModuloInventarios.aspx?listado=true&idProducto=' + idProducto;
    var urlListadoCompras = '/ModuloInventarios.aspx?listado=true&compras=true&idProducto=' + idProducto;
    $("#GridVentasProducto").flexigrid
			(
			{
			    url: urlListado,
			    dataType: 'json',
			    colModel: [
				{display: 'No. Cot.', name: 'id', width: 50, sortable: true, align: 'center' },
				{ display: 'No. Pedido', name: 'noPedido', width: 45, sortable: true, align: 'left',hide:true },
                {display: 'Cliente', name: 'NombreCliente', width: 150, sortable: true, align: 'left' },
                { display: 'F. Pedido', name: 'fechaPedido', width: 55, sortable: true, align: 'left' },
				{ display: 'Cantidad', name: 'NombreLinea', width: 45, sortable: true,align: 'right'  },
				{ display: 'Precio Venta', name: 'NombreMarca', width: 50, sortable: true, align: 'right' },
                {display: 'Total', name: 'stock', width: 60, sortable: true, align: 'right' }
				],
			    searchitems: [
				{ display: 'No. ', name: 'id' },
				{ display: 'Descripcion', name: 'descripcion', isdefault: true },
                { display: 'Clave de ', name: 'clave' },
                { display: 'SKU', name: 'SKU' }
				],
			    sortname: "id",
			    sortorder: "desc",
			    usepager: true,
			    title: 'Ventas del Producto',
			    useRp: true,
			    width: 500,
			    height: (GridTotalHeight-100)/2,
			    pagestat: 'Mostrando de {from} a {to} de un total de {total} registros',
			    pagetext: 'Pagina',
			    outof: 'de',
			    findtext: "Buscar <span style='font-size:8px;'>(presione Enter para realizar la busqueda)</span>",
			    procmsg: 'Procesando, Espere por favor ...',
			    nomsg: 'No hay registros',
			    resizable: false,
			    blockOpacity: 0.75,
			    onSuccess: function () { AddGridTotals('GridVentasProducto'); },
			    OnDoubleClick: function (id) { $('#PestanaPanelVentas').click(); CargarPaginaVentas('/ModuloVentas.aspx?idVenta=' + id); }
			}
			);

			$("#GridComprasProducto").flexigrid
			(
			{
			    url: urlListadoCompras,
			    dataType: 'json',
			    colModel: [
                {display: 'No. Cot.', name: 'id', width: 50, sortable: true, align: 'center' },
				{ display: 'No. Pedido', name: 'noPedido', width: 45, sortable: true, align: 'left',hide:true },
                {display: 'Proveedor', name: 'NombreCliente', width: 150, sortable: true, align: 'left' },
                { display: 'F. Pedido', name: 'fechaPedido', width: 55, sortable: true, align: 'left' },
				{ display: 'Cantidad', name: 'NombreLinea', width: 45, sortable: true,align: 'right'  },
				{ display: 'Precio Compra', name: 'NombreMarca', width: 50, sortable: true, align: 'right' },
                {display: 'Total', name: 'stock', width: 60, sortable: true, align: 'right' }
				],
			    searchitems: [
				{ display: 'No. ', name: 'id' },
				{ display: 'Descripcion', name: 'descripcion', isdefault: true },
                { display: 'Clave ', name: 'clave' },
                { display: 'SKU', name: 'SKU' }
				],
			    sortname: "id",
			    sortorder: "desc",
			    usepager: true,
			    title: 'Compras del Producto',
			    useRp: true,
			    width: 500,
			    height: (GridTotalHeight-100)/2,
			    pagestat: 'Mostrando de {from} a {to} de un total de {total} registros',
			    pagetext: 'Pagina',
			    outof: 'de',
			    findtext: "Buscar <span style='font-size:8px;'>(presione Enter para realizar la busqueda)</span>",
			    procmsg: 'Procesando, Espere por favor ...',
			    nomsg: 'No hay registros',
			    resizable: false,
			    blockOpacity: 0.75,
			    onSuccess: function () { AddGridTotals('GridComprasProducto'); },
			    OnDoubleClick: function (id) { $('#PestanaPanelCompras').click(); CargarPaginaCompraes('/ModuloCompras.aspx?idCompra=' + id); }
			}
			);




			$("#GridStockProducto").flexigrid
			(
			{
			    url: '/ModuloInventarios.aspx?stock=true&idProducto=' + idProducto,
			    dataType: 'json',
			    colModel: [
				{ display: 'ID', name: 'id', width: 50, sortable: true, align: 'center', hide: true },
                { display: 'Almacen', name: 'noPedido', width: 156, sortable: true, align: 'left' },
				{ display: 'Stock', name: 'noPedido', width: 56, sortable: true, align: 'right' },
                { display: 'Apartados', name: 'NombreCliente', width: 56, sortable: true, align: 'right' },
                { display: 'Por Surtir', width: 56, sortable: true, align: 'right' }
				],

			    sortname: "id",
			    sortorder: "desc",
			    usepager: false,
			    title: 'Stock del Producto',
			    useRp: true,
			    width: 500,
			    height: (GridTotalHeight - 90) / 3,
			    pagestat: 'Mostrando de {from} a {to} de un total de {total} registros',
			    pagetext: 'Pagina',
			    outof: 'de',
			    findtext: "Buscar <span style='font-size:8px;'>(presione Enter para realizar la busqueda)</span>",
			    procmsg: 'Procesando, Espere por favor ...',
			    nomsg: 'No hay registros',
			    resizable: false,
			    blockOpacity: 0.75,
			    OnDoubleClick: function (id) {
			        $('#idAlmacenKardex option[value="' + id + '"]').attr('selected', 'selected');
			        $('#idAlmacenKardex').change();
			    }
			}
			);


			var FIni = new Date();
			var FFin = new Date();
			FIni.prevMonth();
			FIni.prevMonth();
			var FechaInicial = FIni.getDate() + "/" + (new Number(FIni.getMonth()) + 1) + "/" + FIni.getFullYear();
			var FechaFinal = FFin.getDate() + "/" + (new Number(FFin.getMonth()) + 1) + "/" + FFin.getFullYear();

			$("#GridKardexProducto").flexigrid
			(
			{
			    url: '/ModuloInventarios.aspx?listado=true&idProducto=' + idProducto + '&kardex=true&idAlmacen=1&fechaInicial='+FechaInicial+'&fechaFinal='+FechaFinal+'&',
			    dataType: 'json',
			    colModel: [
				{ display: 'ID', name: 'M.id', width: 50, sortable: true, align: 'center', hide: true },
                { display: 'S. Inic.', name: 'stockInicial', width: 40, sortable: true, align: 'left' },
				{ display: 'Entrada', name: 'cantidadEntrada', width: 40, sortable: true, align: 'right' },
                { display: 'Salida', name: 'cantidadSalida', width: 40, sortable: true, align: 'right' },
                { display: 'S. Final', width: 40, sortable: true, align: 'right' },
                { display: 'No Cot', width: 35, sortable: true, align: 'right' },
                { display: 'No Com', width: 35, sortable: true, align: 'right' },
                { display: 'Fecha', width: 52, sortable: true, align: 'right' },
                { display: 'Cliente/Proveedor', width: 100, sortable: true }
				],
			    searchitems: [
				{ display: 'No. ', name: 'M.id' }
				],
			    sortname: "M.id",
			    sortorder: "desc",
			    usepager: true,
			    title: 'Kardex del Producto  - <select id="idAlmacenKardex" class="fechaReportes"><option value="1">Matriz</option><option value="2">Centro</option></select> - <input type="text" id="kardexInicial" value="' + FechaInicial + '" class="fechaKardex fechaReportes fechaInicial" readonly=""> - <input type="text" id="kardexFinal" value="' + FechaFinal + '" class="fechaKardex fechaReportes fechaFinal" readonly="">',
			    useRp: true,
			    width: 500,
			    height: ((GridTotalHeight - 90) / 3) * 2,
			    pagestat: 'Mostrando de {from} a {to} de un total de {total} registros',
			    pagetext: 'Pagina',
			    outof: 'de',
			    findtext: "Buscar <span style='font-size:8px;'>(presione Enter para realizar la busqueda)</span>",
			    procmsg: 'Procesando, Espere por favor ...',
			    nomsg: 'No hay registros',
			    resizable: false,
			    blockOpacity: 0.75

			}
			);


			$("#idAlmacenKardex").change(function () {

			    actualizarGridKardex(idProducto, idAlmacenKardexSeleccionado(), $("#kardexInicial").val(), $("#kardexFinal").val());
			});

			$("#kardexInicial").change(function () {
			    actualizarGridKardex(idProducto,idAlmacenKardexSeleccionado(), $("#kardexInicial").val(), $("#kardexFinal").val());
			});

			$("#kardexFinal").change(function () {
			    actualizarGridKardex(idProducto, idAlmacenKardexSeleccionado(), $("#kardexInicial").val(), $("#kardexFinal").val());
			});
			$(".fechaKardex").attr("readonly", "readonly").datepicker({
			    numberOfMonths: 2,
			    showButtonPanel: true
			});

}


function CargarPanelEdicionProducto() {
    var idProducto = $('#idRegistroProducto').val();
    CargarPaginaInventario('/ModuloInventarios.aspx?idProducto=' + idProducto + '&editar=true');
}

function initModuloInventarios() {

    LoadCategoriasProductos();
    LoadLineasProductos();
    LoadMarcasProductos();
    if ($('#cantidadProveedoresProducto').val() == "0")
        nuevoProveedorProducto();
    AutocompletarCategoriasProducto();
    AutocompletarLineasProducto();
    AutocompletarMarcasProducto();
    CargadorArchivosInventario();
    //    $("#Telefono").mask("(999) 999-9999 Ext. ****");
    //    $("#Telefono2").mask("(999) 999-9999 Ext. ****");
    //    $("#Telefono3").mask("(999) 999-9999 Ext. ****");
    //    $("#FAX").mask("(999) 999-9999 Ext. ****");
    //$("#SKU").mask("aaaa-999999-***");
}



function nuevoProveedorProducto() {
    var noProveedores = parseInt($('#cantidadProveedoresProducto').val());
    noProveedores++;
    var plantilla = $('#ProveedorTemplate').html();
    plantilla = plantilla.replace(/IDCON/gi, noProveedores);
    $("#ContenedorProveedoresProductos").append(plantilla);
    $("#ProveedorDiv" + noProveedores).show();
    $('#cantidadProveedoresProducto').val(noProveedores);
    $("#telefonoProveedor" + noProveedores).mask("(999) 999-9999 Ext. ****");
    ActivarAutocompletadoProveedorProducto(noProveedores);
    return noProveedores;
}
function cargarProveedorProducto(id, razonSocial, nombreComercial, precio, telefono, email) {
    var idContacto = nuevoProveedorProducto();
    $("#ProveedorId" + idContacto).val(id);
    $("#razonSocialProveedor" + idContacto).val(razonSocial);
    $("#nombreComercialProveedor" + idContacto).val(nombreComercial);
    $("#precioProductoProveedor" + idContacto).val(precio);
    $("#telefonoProveedor" + idContacto).val(telefono);
    $("#emailProveedor" + idContacto).val(email);
}

function quitarProveedorProducto(idProveedor) {
    if (confirm("¿Esta seguro de querer borrar el Proveedor '" + $('#razonSocialProveedor' + idProveedor).val() + "' del Producto")) {
        $("#ProveedorDiv" + idProveedor).hide();
        $('#ProveedorEliminado' + idProveedor).val("true");
    }
}


function AutocompletarCategoriasProducto() {
    $("#categoriaProducto").autocomplete(ListaCategoriasProductos, {
        minChars: 0,
        width: 250,
        matchContains: "word",

        autoFill: false,
        formatItem: function (row, i, max) {
            return i + "/" + max + ": \"" + row.NombreCategoria;
        },
        formatMatch: function (row, i, max) {
            return row.NombreCategoria;
        },
        formatResult: function (row) {
            return row.NombreCategoria;
        }
    }).result(function (event, item) {
        with (item) {
            if (id != 0) {
                $("#idCategoriaProducto").val(id);
            }
        }

    }).setOptions({ data: ListaCategoriasProductos });
}

function AutocompletarLineasProducto() {

    $("#lineaProducto").autocomplete(ListaLineasProductos, {
        minChars: 0,
        width: 250,
        matchContains: "word",

        autoFill: false,
        formatItem: function (row, i, max) {
            return i + "/" + max + ": \"" + row.NombreLinea;
        },
        formatMatch: function (row, i, max) {
            return row.NombreLinea;
        },
        formatResult: function (row) {
            return row.NombreLinea;
        }
    }).result(function (event, item) {
        with (item) {
            if (id != 0) {
                $("#idLineaProducto").val(id);
            }
        }

    }).setOptions({ data: ListaLineasProductos });
}

function AutocompletarMarcasProducto() {
    $("#marcaProducto").autocomplete(ListaMarcasProductos, {
        minChars: 0,
        width: 250,
        matchContains: "word",

        autoFill: false,
        formatItem: function (row, i, max) {
            return i + "/" + max + ": \"" + row.NombreMarca;
        },
        formatMatch: function (row, i, max) {
            return row.NombreMarca;
        },
        formatResult: function (row) {
            return row.NombreMarca;
        }
    }).result(function (event, item) {
        with (item) {
            if (id != 0) {
                $("#idMarcaProducto").val(id);
            }
        }

    }).setOptions({ data: ListaMarcasProductos });
}

function ActualizarClaveProducto() {
    var linea = $('#idLineaProducto').val();
    if (linea < 10)
        linea = "00" + linea;
    else if(linea < 100)
    linea = "0" + linea;
    var categoria = $('#idCategoriaProducto').val();
    if (categoria < 10)
        categoria = "00" + categoria;
    else
        if (categoria < 100)
            categoria = "0" + categoria;
    var marca = $('#idMarcaProducto').val();
    if (marca < 10)
        marca = "0" + marca;
    var idProducto = $('#idRegistroProducto2').val();
    if (idProducto < 10)
        idProducto = "000" + idProducto;
    else
        if (idProducto < 100)
            idProducto = "00" + idProducto;
        else
            if (idProducto < 1000)
                idProducto = "0" + idProducto;
    $("#ClaveProducto").val(categoria +"-" + linea + "-"+ idProducto);
    //    var dollars =new Number(5.001);
    //alert(dollars.numberFormat("$0.00"));
}

function ActivarAutocompletadoProveedorProducto(idContenedorClave) {
    LoadListaProveedores();
    //alert();
    $("#razonSocialProveedor" + idContenedorClave).autocomplete(ListaProveedores, {
        minChars: 0,
        width: 450,
        panelPosition: "top",
        matchContains: "word",
        autoFill: false,
        scrollHeight: 400,
        formatItem: function (row, i, max) {
            return i + "/" + max + ": \"<strong>" + row.RazonSocial + "</strong>\" - " + row.NombreComercial + "  [ " + row.RFC + " ]";
        },
        formatMatch: function (row, i, max) {
            return row.RazonSocial + " " + row.NombreComercial;
        },
        formatResult: function (row) {
            return row.RazonSocial;
        }
    }).result(function (event, item) {
        with (item) {
            if (id != 0) {
                $("#nombreComercialProveedor" + idContenedorClave).val(NombreComercial);
                $("#telefonoProveedor" + idContenedorClave).val(Telefono);
                $("#emailProveedor" + idContenedorClave).val(Email);
                $("#ProveedorId" + idContenedorClave).val(id);
            }
        }
    });
}

function showRequestInventarios() {
    if ($('#idRegistroProducto').val() != "0")
        ProductoNuevo = $('#idRegistroProducto').val();
    CrearLoaderDiv('#DivInventarios', 'DivInventariosLoader');
    NombreProductoEditado = $('#DescripcionProducto').val();
}

function showSucessInventarios() {
    if (ProductoNuevo == "0")
        MostrarAlerta("El Proucto " + NombreProductoEditado + " ha sido dado de alta en el sistema correctamente");
    else
        MostrarAlerta("El Producto <b>" + NombreProductoEditado + "</b> ha sido actualizado correctamente!!");

}

function ShowErrorInventarios(responseText, statusText) {
    MostrarError("<b>Error del sistema </b> Por favor verifique su informacion e intente de nuevo.");
    $("#DivInventariosLoader").remove();
}


function CargadorArchivosInventario() {
    new AjaxUpload('FileUploaderButton', { action: '/Ajax/ImageUploadHandler.ashx',
        name: 'Filedata',
        autoSubmit: true,
        responseType: false,
        // Fired after the file is selected
        // Useful when autoSubmit is disabled
        // You can return false to cancel upload
        // @param file basename of uploaded file
        // @param extension of that file
        onChange: function (file, extension) {
            $('#FileUploaderButton').hide();
            $('#FileUploaderButton').html("Cargando Imagen...");
        },
        // Fired before the file is uploaded
        // You can return false to cancel upload
        // @param file basename of uploaded file
        // @param extension of that file
        onSubmit: function (file, extension) {
            $('#FileUploaderButton').hide();
            $('#FileUploaderButton').html("Cargando Imagen...");
            $("#DivImagenSubida").prepend($("#AjaxLoaderPanel").html());
        },
        onComplete: function (file, response) {
            $("#ImagenSubida").attr("src", response.toString().split('|')[1]).show();
            $('#DivImagenSubida').show();
            $('#FileUploaderButton').hide();
            $("#idImagenProducto").val(response.toString().split('|')[0]);
            $("#DivImagenSubida #AjaxDiv").remove();
            $(".AjaxFileUploader").hide();

        }
    });
}


function confirmarBorrarProducto() {

    var idProducto = $('#idRegistroProducto').val();
    MostrarConfirmacion("De verdad quiere eliminar el producto/materia ", "Eliminar Producto/Materia", function () { CargarPaginaInventario("/moduloInventarios.aspx?eliminar=true&idProducto=" + idProducto); });

}

function ImprimirListaPrecios() {
    var A = $('#lista1').attr('checked');
    var B = $('#lista2').attr('checked');
    var C = $('#lista3').attr('checked');
    var D = $('#lista4').attr('checked');
    var IVA = $('#listaIVA').attr('checked');
    var EXCEL = $('#ListaExcel').attr('checked');
    $("#iframeLoader").attr("src", "");
    $("#iframeLoader").attr("src", "/ModuloInventarios.aspx?listaPrecios=true&A=" + A + "&B="+B+"&C=" + C+"&D="+D+"&IVA="+IVA+"&Excel="+EXCEL);
}

function ReporteInventarios()
{
    CargarPaginaInventario("/moduloInventarios.aspx?ReporteVentas=true");
}

function ReporteInventariosImprimir() {
    
    $("#iframeLoader").attr("src", "");
    var contenido = $("#TableReporteInventario").html();
    var fechaInicial = $("#RepProdFechaInicial").val();
    var fechaFinal = $("#RepProdFechaFinal").val();
    PostPrintReporte("VentasProducto", contenido, fechaInicial, fechaFinal);
    //$("#iframeLoader").attr("src", "/ImpresionReporte.aspx?tipo=VentasProducto&fechaInicial=" + fechaInicial + "&fechaFinal=" + fechaFinal + "&tablaReporte=" + contenido);
}



var TasaIvaCotizciones = 16;

function nuevoConceptoInventario() {
    var noConceptos = parseInt($('#cantidadConceptosInventario').val());
    noConceptos++;
    var plantilla = $('#ConceptoTemplateInventario').html();
    plantilla = plantilla.replace(/IDCON/gi, noConceptos);
    $("#ContenedorConceptosInventario").append(plantilla);
    $("#ConceptoDivInventario" + noConceptos).show();
    //$("#ConceptoDiv" + noConceptos +" input").attr("readonly","readonly");
    $('#cantidadConceptosInventario').val(noConceptos);
    ActivarAutocompletadoCotizacionConceptoInventario(noConceptos);
    return noConceptos;
}


function ActivarAutocompletadoCotizacionConceptoInventario(idContenedorClave) {
    LoadListaProductos();
    //alert();
    $("#claveConceptoInventario" + idContenedorClave).autocomplete(ListaProductos, {
        minChars: 0,
        width: 450,
        matchContains: "word",
        autoFill: false,
        scrollHeight: 400,
        formatItem: function (row, i, max) {
            return i + "/" + max + ": \"<strong>" + row.Clave + "</strong>\" - " + row.Descripcion + "  [ " + eval("row.Precio" + 1) + " ]";
        },
        formatMatch: function (row, i, max) {
            return row.Clave + " " + row.Descripcion;
        },
        formatResult: function (row) {
            return row.Clave;
        }
    }).result(function (event, item) {
        with (item) {
            if (id != 0) {
                $("#unidadConceptoInventario" + idContenedorClave).val(UnidadMedida);
                $("#categoriaConceptoInventario" + idContenedorClave).val(Categoria);
                $("#lineaConceptoInventario" + idContenedorClave).val(Linea);
                $("#marcaConceptoInventario" + idContenedorClave).val(Marca);
                $("#descripcionConceptoInventario" + idContenedorClave).val(Descripcion);

               // $("#precioConceptoInventario" + idContenedorClave).LoadItemPrices(item);
                $("#idProductoConceptoInventario" + idContenedorClave).val(id);
                if ($("#cantidadConceptoInventario" + idContenedorClave).val() == "0")
                    $("#cantidadConceptoInventario" + idContenedorClave).val(1);
//                $("#importeConceptoInventario" + idContenedorClave).val(formatCurrency(CalcularImporteInventario(idContenedorClave)));
//                CalcularTotalesInventario(TasaIvaCotizciones);
            }
        }
    });
}


function CalcularImporteInventario(idConcepto) {
    var precio = 0;
    if ($("#precioConceptoInventario" + idConcepto))
        precio = parseFloat($("#precioConceptoInventario" + idConcepto).val().replace("$", "").replace(",", ""));  //parseFloat($("#precio" + ListaPreciosCotizacionesSeleccionada + "ConceptoCotizacion" + idConcepto).val());
    var cantidad = parseFloat($("#cantidadConceptoInventario" + idConcepto).val());
    return (precio * cantidad);
}

function CalcularTotalesInventario(TasaIVA) {
    var subtotal = new Number(0);
    var ivaLocal = new Number(0);
    var descuentoLocal = new Number(0);

    var porcenDescuento = Number(0);
    var totalDescuento = Number(0);
    for (x = 1; x <= parseInt($('#cantidadConceptosInventario').val()); x++) {
        var importe = CalcularImporteInventario(x);
        //$("#precioConcepto" + x).val(formatCurrency($("#precio" + ListaPreciosCotizacionesSeleccionada + "ConceptoCotizacion" + x).val()));
        $("#importeConceptoInventario" + x).val(formatCurrency(importe));
        subtotal += importe;
    }

    //    if ($("#DescuentoCotizacion").val().toString().indexOf("%") >= 0) {
    var porcentaje = new String($("#DescuentoCotizacionInventario").val());
    porcentaje = new Number(porcentaje.replace(/%/g, ""));
    //alert(porcentaje)
    if (!isNaN(porcentaje))
        descuentoLocal = subtotal * (porcentaje / 100);
    else
        descuentoLocal = 0;
    //    }
    //    else {
    //        //alert($("#DescuentoCotizacion").val().toString().indexOf("%"));
    //        descuentoLocal = new Number($("#DescuentoCotizacion").val());
    //    }

    ivaLocal = (subtotal - descuentoLocal) * (TasaIVA / 100);
    $('#SubTotalCotizacionInventario').val(formatCurrency(subtotal));

    if ($("#incluyeIVAInventario").attr("checked")) {
        $('#TotalCotizacionInventario').val(formatCurrency(ivaLocal + subtotal - descuentoLocal))
        $('#IVACotizacionInventario').val(formatCurrency(ivaLocal));
    }
    else {
        $('#IVACotizacionInventario').val(formatCurrency(0));
        $('#TotalCotizacionInventario').val(formatCurrency(subtotal - descuentoLocal));
    }
}


function showRequestInventario() {
    CrearLoaderDiv('#DivInventario', 'DivInventarioLoader');
}

function sucessInventario() {
    var ContenidoAlerta = $("#ResultadoProcesoInventario").html();
    var EsError = $("#ResultadoErrorInventario").val();
    if (EsError == "error")
        MostrarError(ContenidoAlerta);
    else
        MostrarAlerta(ContenidoAlerta);
}

function quitarConceptoInventario(idConcepto) {
    //$('#idProductoConcepto' + idConcepto).val('0');
    $('#cantidadConceptoInventario' + idConcepto).val('0');
    $('#ConceptoEliminadoInventario' + idConcepto).val('true');
    $("#ConceptoDivInventario" + idConcepto).hide();
    CalcularTotalesInventario(TasaIvaCotizciones);
}

function initModuloInventario() {
    nuevoConceptoInventario();

}

function InventariotPrintInventario(idCotizacion) {//,to, p) {
    var myForm = document.createElement("form");
    myForm.action = "/ModuloInventario.aspx";
    myForm.method = "Inventariot";
    //myform.target = "iframeLoader";


    var Tipo = document.createElement("input");
    Tipo.setAttribute("name", "idCotizacion");
    Tipo.setAttribute("type", "hidden");
    Tipo.setAttribute("value", idCotizacion);
    myForm.appendChild(Tipo);

    var Tipo2 = document.createElement("input");
    Tipo2.setAttribute("name", "impresion");
    Tipo2.setAttribute("type", "hidden");
    Tipo2.setAttribute("value", true);
    myForm.appendChild(Tipo2);

    document.body.appendChild(myForm);
    myForm.submit();

    document.body.removeChild(myForm);
}
